草庐IT

linux - Bash 19 个字符无缘无故消失

我试图制作一个批处理脚本来压缩我的音频文件,但我遇到了一个非常奇怪的问题。这是我的代码:#!/bin/bashqscale=$1input=$2output=$3inputSize=$((${#input}+1))find"$input"-typef-name"*.flac"-print0|whileread-d$'\0'adopath=${a:inputSize}echo"Workingon$path"#ffmpeg-i"$a"-qscale:a$qscale"$output/${path[@]/%flac/mp3}"&>/dev/nulldone这是一个结果示例:Workingon

linux - 如何使用 bash 获取字符串中函数的内容?

我已经搜索过这个特定问题,但找不到任何有用的信息。假设我在~/.bashrc中定义了以下函数(注意:这是伪代码!):ANDROID_PLATFORM_ROOT="/home/simao/xos/src/"functiongetPlatformPath(){echo"$ANDROID_PLATFORM_ROOT"}functionaddCaf(){#Medoingstuffecho"blah/$(getPlatformPath)"}functionaddAosp(){#Medoingstuffecho"aosp/$(getPlatformPath)"}functionaddXos(){#

linux - 是否可以编写一个在 bash/shell 和 PowerShell 中运行的脚本?

我需要创建一个集成脚本来设置一些环境变量,使用wget下载文件并运行它。挑战在于它需要是可以在WindowsPowerShell和bash/shell上运行的相同脚本。这是shell脚本:#!/bin/bash#downloadascriptwgethttp://www.example.org/my.script-Omy.script#setacoupleofenvironmentvariablesexportscript_source=http://www.example.orgexportsome_value=floob#nowexecutethedownloadedscriptb

linux - Bash 函数中的 Cd

我关于SO的第一个问题,如果做错了什么,我深表歉意!互联网上有很多关于在脚本中使用cd的问题,但我的问题是在我放入.bashrc的bash函数中使用cd。它的任务是找到一个文件并转到该文件的工作目录。如果找到多个文件,我只转到第一个文件。在这里:fcd(){cd$PWDif[-z"$1"];thenecho'Specifyafilenametofind'elsefound_dir=$(find.-name$1-typef-printf\"%h/\"-quit)echo$found_dirif[-z"$found_dir"];thenecho"Nofilefound.Directoryw

linux - 使用另一个 bash 命令输出的 bash 命令

我在谷歌云有一组机器。来self的本地主机:gcloudcomputeinstance-groupslist-instancesworkersOUTPUT:NAMEZONESTATUSworkers-lya2us-central1-aRUNNINGworkers-23d4us-central1-aRUNNING...workers-3asd3us-central1-aRUNNING我想要一个来自该列表的随机工作人员名称(比如workers-23d4),它是来自第一个命令的区域us-central1-m并将其粘贴到此命令:gcloudcompute--project"my-project

linux - 从 bash 脚本添加 ssh 并自动输入密码

我正在尝试从脚本执行ssh-add(目前不关心安全性)。现在ssh提示输入密码,这需要自动化,所以我读了一些东西,比如this并找到expect.现在我执行以下操作:eval`ssh-agent-s`脚本tmp.sh定义为:#!/usr/bin/expectspawnssh-add/root/.ssh/id_rsaexpect"Enterpassphrasefor/root/.ssh/id_rsa:"send"my_pass"interact./tmp.shssh-add-l如果ssh-add可以正常工作,它会显示类似4096SHA256:wlfP/nhVSWXLcljBOen5GSY

linux - 如何分离 bash 文件生成的每个命令的输出?

假设我们有一个如下所示的bash脚本:echotestls-alhpwdechotest2因此文件可以有任意数量的命令,每个命令产生或不产生自己的输出。然后上面的文件像这样运行/bin/bash-xetest.sh将产生以下输出:+echotesttest+ls-alhtotal32drwx------+6danielsstaff204BApr323:33.drwxr-xr-x+64danielsstaff2.1KApr401:53..-rw-r--r--@1danielsstaff6.0KApr323:33.DS_Storedrwxr-xr-x5danielsstaff170BMar

linux - 关闭窗口时不写入 Bash 命令历史记录

我发现在我的笔记本电脑上安装的“bashforubuntuforwindows”在我重启“bashforubuntuforwindows”后无法加载命令历史。更准确地说,如果我打开终端,并输入一些命令,那么我在这个终端session中输入的所有命令都可以通过箭头键找到。但是,如果我关闭(通过单击右上角的“x”)终端并重新打开它,我将找不到之前通过箭头键键入的任何命令。有没有人对此有任何想法?非常感谢。 最佳答案 您需要通过键入exit或Ctrl+d来离开shell,而不仅仅是关闭窗口。exit将隐式写入历史记录,您可以随时使用his

python - 从 bash 脚本向 python 传递参数

我一直在研究bash和python脚本的混合脚本。bash脚本可以接收未知计数输入参数。例如:tinify.shtest1.jpgtest2.jpgtest3.jpg.....bash收到所有参数后,将这些参数传递给tinify.py。现在我想出了两种方法。在bash中循环并调用pythontinify.pytestx.jpg换句话说,pythontinifytest1.jpg然后是pythontinifytest2.jpg,最后是pythontinifytest3.jpg将所有参数传递给tinify.py然后在python中循环但是有一个问题,我想过滤相同的参数,例如如果用户输入ti

linux - 如果 bash 脚本的条件有什么问题

我有安装了ZSH的Ubuntu18.04。我有这个bash脚本用于检查目录是否存在。即使我有一个名为“~/.config”的目录,条件始终为负。我似乎无法弄清楚我的代码有什么问题。setup.sh#!/bin/bashif[-d"~/.config"];thenecho"Directoryexist"elseecho"Doesnotexist"fi使用chmod+x./setup.sh使文件可执行输出总是不存在 最佳答案 由于您编写了"~/.config",它将被视为文字字符串。为了允许~shell扩展,你需要不加引号:#!/bin